package co.gov.medellin.ssti.sub.paoyer.common;

import javax.naming.Context;
import javax.naming.InitialContext;

import co.gov.medellin.ssti.sub.common.excepcion.SUBException;

/**
 * Provee los servicios de localizacion de componentes de negocio de los
 * m�dulos.
 * 
 * @version 0.9
 */
public class ServiceLocator {

	Context context = null;

	/**
	 * Obtiene una referencia al servidor JNDI del servidor de aplicaciones
	 * donde se encuentran registrados las interfaces Home de los componentes
	 * Facade.
	 * 
	 * @return Referencia al servidor JNDI.
	 * @throws java.lang.Exception
	 *             Se levanta cuando ocurre un problema al conectarse al
	 *             registro de componentes.
	 */
	public Context getIASInitialContext() throws Exception {

		try {
			/*
			 * PropertiesLoader p = PropertiesLoader.getInstance();
			 * 
			 * Hashtable env = new Hashtable();
			 * env.put(Context.INITIAL_CONTEXT_FACTORY,
			 * "com.evermind.server.rmi.RMIInitialContextFactory");
			 * env.put(Context.SECURITY_PRINCIPAL,
			 * p.getProperty("RMI_APPLICATION_USER"));
			 * env.put(Context.SECURITY_CREDENTIALS,
			 * p.getProperty("RMI_APPLICATION_USER_CREDENTIALS"));
			 * env.put("dedicated.connection", "true");
			 * env.put(Context.PROVIDER_URL,
			 * p.getProperty("PROVIDER_APPLICATION_URL"));
			 */
			return new InitialContext();

		} catch (Exception e) {
			SUBException.logDebugError("", e);
			throw e;
		}
	}

	public void Destroy() {
		try {
			context.close();
			context = null;
		} catch (Exception ex) {
			SUBException.logDebugError("", ex);
		}
	}
}
